<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>libnoise: Documentation</title>
  <link rel='stylesheet' type='text/css' href='doxygen.css'>
  <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
 </head>
 <body>
  <table class='layout'>
   <tr>
    <td class='sidebar' rowspan='2'>
     <p>
      Navigation menu
     </p>
     <ul class='toc'>
      <li>
       <a href='http://libnoise.sourceforge.net/index.html'>Main</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>
        </li>
       </ul>
      </li>
      <li>
       <strong>Docs</strong>
      </li>
      <li>
       <a href='tutorials/index.html'>Tutorials</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>
        </li>
       </ul>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>
      </li>
     </ul>
    </td>
    <td class='header'>
     <p>
      <img src='libnoise.png' alt='libnoise logo'>
     </p>   
     <p>
      A portable, open-source, coherent noise-generating library for C++
     </p>
     <hr>
    </td>
   </tr>
   <tr>
    <td class='content'>

<!-- start rich gooey content -->
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>noise::module::Perlin Class Reference<br>
<small>
[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>
</h1><code>#include &lt;<a class="el" href="perlin_8h-source.html">perlin.h</a>&gt;</code>
<p>
<p>Inheritance diagram for noise::module::Perlin:
<p><center><img src="classnoise_1_1module_1_1Perlin.png" usemap="#noise::module::Perlin_map" border="0" alt=""></center>
<map name="noise::module::Perlin_map">
<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">
</map>
<a href="classnoise_1_1module_1_1Perlin-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Noise module that outputs 3-dimensional <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<div align="center">
<img src="moduleperlin.png" alt="moduleperlin.png">
</div>
<p>
<a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise is the sum of several coherent-noise functions of ever-increasing frequencies and ever-decreasing amplitudes.<p>
An important property of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise is that a small change in the input value will produce a small change in the output value, while a large change in the input value will produce a random change in the output value.<p>
This noise module outputs Perlin-noise values that usually range from -1.0 to +1.0, but there are no guarantees that all output values will exist within that range.<p>
For a better description of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, see the links in the <em>References and Acknowledgments</em> section.<p>
This noise module does not require any source modules.<p>
<b>Octaves</b><p>
The number of octaves control the <em>amount of detail</em> of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. Adding more octaves increases the detail of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, but with the drawback of increasing the calculation time.<p>
An octave is one of the coherent-noise functions in a series of coherent-noise functions that are added together to form <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>
An application may specify the frequency of the first octave by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency()</a> method.<p>
An application may specify the number of octaves that generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">SetOctaveCount()</a> method.<p>
These coherent-noise functions are called octaves because each octave has, by default, double the frequency of the previous octave. Musical tones have this property as well; a musical C tone that is one octave higher than the previous C tone has double its frequency.<p>
<b>Frequency</b><p>
An application may specify the frequency of the first octave by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency()</a> method.<p>
<b>Persistence</b><p>
The persistence value controls the <em>roughness</em> of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. Larger values produce rougher noise.<p>
The persistence value determines how quickly the amplitudes diminish for successive octaves. The amplitude of the first octave is 1.0. The amplitude of each subsequent octave is equal to the product of the previous octave's amplitude and the persistence value. So a persistence value of 0.5 sets the amplitude of the first octave to 1.0; the second, 0.5; the third, 0.25; etc.<p>
An application may specify the persistence value by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">SetPersistence()</a> method.<p>
<b>Lacunarity</b><p>
The lacunarity specifies the frequency multipler between successive octaves.<p>
The effect of modifying the lacunarity is subtle; you may need to play with the lacunarity value to determine the effects. For best results, set the lacunarity to a number between 1.5 and 3.5.<p>
<b>References &amp; acknowledgments</b><p>
<a href="http://www.noisemachine.com/talk1/">The Noise Machine</a> - From the master, Ken <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> himself. This page contains a presentation that describes <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise and some of its variants. He won an Oscar for creating the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise algorithm!<p>
<a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm">Perlin Noise</a> - Hugo Elias's webpage contains a very good description of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise and describes its many applications. This page gave me the inspiration to create libnoise in the first place. Now that I know how to generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, I will never again use cheesy subdivision algorithms to create terrain (unless I absolutely need the speed.)<p>
<a href="http://www.robo-murito.net/code/perlin-noise-math-faq.html">The Perlin noise math FAQ</a> - A good page that describes <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise in plain English with only a minor amount of math. During development of libnoise, I noticed that my coherent-noise function generated terrain with some "regularity" to the terrain features. This page describes a better coherent-noise function called <em>gradient noise</em>. This version of noise::module::Perlin uses gradient coherent noise to generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a0">Perlin</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a1">GetFrequency</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the frequency of the first octave.  <a href="#a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a2">GetLacunarity</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a3">GetNoiseQuality</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a4">GetOctaveCount</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a5">GetPersistence</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a6">GetSeed</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the seed value used by the Perlin-noise function.  <a href="#a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">GetSourceModuleCount</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of source modules required by this noise module.  <a href="#a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">GetValue</a> (double x, double y, double z) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates an output value given the coordinates of the specified input value.  <a href="#a8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency</a> (double frequency)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the frequency of the first octave.  <a href="#a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a10">SetLacunarity</a> (double lacunarity)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a10"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a11">SetNoiseQuality</a> (<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noiseQuality)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a11"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">SetOctaveCount</a> (int octaveCount)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a12"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">SetPersistence</a> (double persistence)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.  <a href="#a13"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a14">SetSeed</a> (int seed)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the seed value used by the Perlin-noise function.  <a href="#a14"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Perlin::m_frequency"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p0">m_frequency</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frequency of the first octave. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Perlin::m_lacunarity"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p1">m_lacunarity</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frequency multiplier between successive octaves. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Perlin::m_noiseQuality"></a>
<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p2">m_noiseQuality</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Perlin::m_octaveCount"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p3">m_octaveCount</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Total number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::Perlin::m_persistence"></a>
double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p4">m_persistence</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Persistence of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p5" doxytag="noise::module::Perlin::m_seed"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p5">m_seed</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seed value used by the Perlin-noise function. <br></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a0" doxytag="noise::module::Perlin::Perlin"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">Perlin::Perlin           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor. 
<p>
The default frequency is set to <a class="el" href="group__generatormodules.html#ga9">noise::module::DEFAULT_PERLIN_FREQUENCY</a>.<p>
The default lacunarity is set to <a class="el" href="group__generatormodules.html#ga10">noise::module::DEFAULT_PERLIN_LACUNARITY</a>.<p>
The default number of octaves is set to <a class="el" href="group__generatormodules.html#ga11">noise::module::DEFAULT_PERLIN_OCTAVE_COUNT</a>.<p>
The default persistence value is set to <a class="el" href="group__generatormodules.html#ga12">noise::module::DEFAULT_PERLIN_PERSISTENCE</a>.<p>
The default seed value is set to <a class="el" href="group__generatormodules.html#ga14">noise::module::DEFAULT_PERLIN_SEED</a>.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a1" doxytag="noise::module::Perlin::GetFrequency"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::module::Perlin::GetFrequency           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the frequency of the first octave. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the first octave. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a2" doxytag="noise::module::Perlin::GetLacunarity"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::module::Perlin::GetLacunarity           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>
The lacunarity is the frequency multiplier between successive octaves.     </td>
  </tr>
</table>
<a class="anchor" name="a3" doxytag="noise::module::Perlin::GetNoiseQuality"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noise::module::Perlin::GetNoiseQuality           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>
See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities.     </td>
  </tr>
</table>
<a class="anchor" name="a4" doxytag="noise::module::Perlin::GetOctaveCount"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int noise::module::Perlin::GetOctaveCount           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>
The number of octaves controls the amount of detail in the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.     </td>
  </tr>
</table>
<a class="anchor" name="a5" doxytag="noise::module::Perlin::GetPersistence"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::module::Perlin::GetPersistence           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>
The persistence value controls the roughness of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.     </td>
  </tr>
</table>
<a class="anchor" name="a6" doxytag="noise::module::Perlin::GetSeed"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int noise::module::Perlin::GetSeed           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the seed value used by the Perlin-noise function. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The seed value. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a7" doxytag="noise::module::Perlin::GetSourceModuleCount"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">virtual int noise::module::Perlin::GetSourceModuleCount           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the number of source modules required by this noise module. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>

<p>
Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a8" doxytag="noise::module::Perlin::GetValue"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double Perlin::GetValue           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates an output value given the coordinates of the specified input value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>The <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The <em>z</em> coordinate of the input value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>
<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>
Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>
To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">GetSourceModuleCount()</a> method. 
<p>
Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>.    </td>
  </tr>
</table>
<a class="anchor" name="a9" doxytag="noise::module::Perlin::SetFrequency"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetFrequency           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>frequency</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the frequency of the first octave. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>frequency</em>&nbsp;</td><td>The frequency of the first octave. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a10" doxytag="noise::module::Perlin::SetLacunarity"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetLacunarity           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>lacunarity</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lacunarity</em>&nbsp;</td><td>The lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>
  </table>
</dl>
The lacunarity is the frequency multiplier between successive octaves.<p>
For best results, set the lacunarity to a number between 1.5 and 3.5.     </td>
  </tr>
</table>
<a class="anchor" name="a11" doxytag="noise::module::Perlin::SetNoiseQuality"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetNoiseQuality           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>noiseQuality</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em>&nbsp;</td><td>The quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>
  </table>
</dl>
See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities.     </td>
  </tr>
</table>
<a class="anchor" name="a12" doxytag="noise::module::Perlin::SetOctaveCount"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetOctaveCount           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>octaveCount</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>octaveCount</em>&nbsp;</td><td>The number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Precondition:</b></dt><dd>The number of octaves ranges from 1 to <a class="el" href="group__generatormodules.html#ga15">noise::module::PERLIN_MAX_OCTAVE</a>.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em>&nbsp;</td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>
  </table>
</dl>
The number of octaves controls the amount of detail in the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>
The larger the number of octaves, the more time required to calculate the Perlin-noise value.     </td>
  </tr>
</table>
<a class="anchor" name="a13" doxytag="noise::module::Perlin::SetPersistence"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetPersistence           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>persistence</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>persistence</em>&nbsp;</td><td>The persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>
  </table>
</dl>
The persistence value controls the roughness of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>
For best results, set the persistence to a number between 0.0 and 1.0.     </td>
  </tr>
</table>
<a class="anchor" name="a14" doxytag="noise::module::Perlin::SetSeed"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::module::Perlin::SetSeed           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>seed</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the seed value used by the Perlin-noise function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>The seed value. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="perlin_8h-source.html">perlin.h</a><li>perlin.cpp</ul>
<!-- end rich gooey content -->

    </td>
   </tr>
   <tr>
    <td class='footer' colspan='2'>
     <p>
      &copy; 2003-2005 Jason Bevins
     </p>
     <p>
      <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>
      <br>
      The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1
     </p>
    </td>
   </tr>
  </table>
 </body>
</html>
